package com.ming_za.odupdaterserver.core.utils.account.api;

import com.ming_za.odupdaterserver.core.utils.account.token.TokenData;
import com.ming_za.odupdaterserver.core.utils.account.token.TokenPackage;

/**
 * token工厂，提供生成token，解密读取等
 */
public interface TokenFactory {

    /**
     * 创建token
     * @param tokenData token数据
     * @param tokenExpire token有效期
     * @return 创建好的token包
     */
    TokenPackage createToken(TokenData tokenData,long tokenExpire);

    /**
     * 解密并验证数据token
     * @param token token
     * @param key 密钥
     * @param tokenExpire token有效期，需自行判断时间
     * @return token数据，如果返回null则表示解密失败
     */
    TokenData decodeToken(long account,String token,byte[] key,long tokenExpire);

}
